
using Curriculum.LectoresXML.LectorMetadatos;
using System.Collections;

namespace Curriculum.Manejadores
{
	/// <summary>
	/// Summary description for ManejadorAtributos.
	/// </summary>
	public class ManejadorAtributosMetadatos
	{
		private ListaAtributos listaAtributos;


		public ManejadorAtributosMetadatos(string nroVersion)
		{
			LectorAtributos lector = new LectorAtributos();
			listaAtributos = lector.Leer(nroVersion);
		}

		public ManejadorAtributosMetadatos()
			: this(string.Empty)
		{		
		}

		/// <summary>
		/// GetAtributo
		/// </summary>
		/// <param name="idAtributo">id del atributo que se busca</param>
		/// <returns></returns>
		public Atributo GetAtributo(string idAtributo)
		{
			if ((listaAtributos != null) && (listaAtributos.Atributos != null))
			{
				foreach (Atributo atributo in listaAtributos.Atributos)
				{
					if (atributo.idAtributo.Equals(idAtributo))
						return atributo;
				}
			}
			// si no lo encuentra devuelvo un atributo vacio
			return new Atributo();
		}

		public ListaAtributos GetAll()
		{
			return this.listaAtributos;
		}
		public string GetFirstValue()
		{
			return listaAtributos.Atributos[0].nombre.ToString();		
		}

		public void AgregarAtributoNuevo(Atributo atribMetaXML)
		{
			ArrayList listaAux = new ArrayList();

			if ((listaAtributos != null) && (listaAtributos.Atributos != null))
			{
				foreach (Atributo atrib in listaAtributos.Atributos)
				{
					listaAux.Add((atrib));
				}				
			}
			
			listaAux.Add(atribMetaXML);

			listaAtributos = new ListaAtributos();
			listaAtributos.Atributos = new Atributo[listaAux.Count];
			listaAux.CopyTo(listaAtributos.Atributos);

		}

		public void GuardarListaAtrubutosEnXML()
		{
			GuardarListaAtrubutosEnXML(string.Empty);
		}

		public void GuardarListaAtrubutosEnXML(string nroVersion)
		{
			LectorAtributos lector = new LectorAtributos();
			lector.Escribir(listaAtributos, nroVersion);	
		}		
	
		public void GuardarListaAtrubutosEnXML(ListaAtributos listaAtributosXML)
		{
			LectorAtributos lector = new LectorAtributos();
			lector.Escribir(listaAtributosXML, "");	
		}	
	}
}
